package fr.afcepf.ai85.gepeto.service;

import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import fr.afcepf.ai85.ent.Ecole;
import fr.afcepf.ai85.ent.Encadrant;
import fr.afcepf.ai85.hibernate.util.HibernateUtil;

public class ServiceEncadrant {

	public static List<Encadrant> listeEncadrant(){
		List<Encadrant> liste=null;
		try {
			Session session = HibernateUtil.currentSession();
			Transaction tx = session.beginTransaction();
			Query hql = session.createQuery(
					"FROM Encadrant" );		
			liste = hql.list();		
			
//			for(Encadrant e:liste){
//				System.out.println(e.getEmailEncadrant());
//			}
			
			tx.commit();
			HibernateUtil.closeSession();
		} catch (HibernateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			HibernateUtil.closeSession();
		}
		return liste;		
	}
	
	
	
	public static String fonctionByIdfonction(Integer IdFonction){
		List<Encadrant> laListeFonction=null;
		String laFonction="";
		try {
			Session session = HibernateUtil.currentSession();
			Transaction tx = session.beginTransaction();
			Query hql = session.createQuery(
					"FROM Encadrant enc WHERE enc.idEncadrant like :paramId" );		
			hql.setInteger("paramId", IdFonction);
			laListeFonction = hql.list();		
			
			if (laListeFonction.size()>0){
				laFonction=laListeFonction.get(0).getFonctionEncadrant();
			}
			tx.commit();
			HibernateUtil.closeSession();
		} catch (HibernateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			HibernateUtil.closeSession();
		}
		return laFonction;		
	}
	
	
	public static Encadrant encadrantById(Integer idEncadrant){
		List<Encadrant> laListe=null;
		Encadrant enc=null;
		String laFonction="";
		try {
			Session session = HibernateUtil.currentSession();
			Transaction tx = session.beginTransaction();
			Query hql = session.createQuery(
					"FROM Encadrant enc WHERE enc.idEncadrant like :paramId" );		
			hql.setInteger("paramId", idEncadrant);
			laListe = hql.list();		
			
			if (laListe.size()>0){
				enc=laListe.get(0);
			}
			tx.commit();
			HibernateUtil.closeSession();
		} catch (HibernateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			HibernateUtil.closeSession();
		}
		return enc;		
	}
	
	
	
	
	public static void main(String[] args) {
		//listeEncadrant();
 System.out.println(encadrantById(7).getNomEncadrant());
	}
}
